<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>安装</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="mysqli.requirements.html">« 需求</a></li>
      <li style="float: right;"><a href="mysqli.configuration.html">运行时配置 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="mysqli.setup.html">安装/配置</a></li>
    <li>安装</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="mysqli.installation" class="section">

<h2 class="title">安装</h2>

 <p class="para">
 <code class="literal">mysqli</code>扩展在PHP5.0.0中被引入。Mysql Native驱动在PHP5.3.0版本中被引入。
 </p>

 <div class="section" id="mysqli.installation.linux">

  <h2 class="title">在linux上安装</h2>

  <p class="para">
  通用的Unix分发包中会包含PHP可安装的二进制版本。虽然这些二进制版本通常会被构建为支持启用mysql扩展的，
  蚕食扩展库自身可能需要依赖其他附加包的安装。因此对包管理的检查会比选择可用的发行版本更重要。
  </p>

  <p class="para">
  除非你的Unix分发包包含的PHP二进制包的<code class="literal">mysqli</code>扩展可用，否则你就需要
  从源码构建PHP。如果你希望使用mysql扩展，从PHP源代码构建允许你这样做，并且可以指定每个扩展
  使用什么客户端库。
  </p>
<p class="para">
    使用Mysql Native Driver 是推荐的选项，会提升性能并且会带来一些Mysql Client Library不允许的访问特性。
    <a href="mysqli.overview.html#mysqli.overview.mysqlnd" class="link">什么是Mysql自然驱动器？</a>中对Mysql Native Driver
    的优势做了一个简要概述。
    </p>
     <p class="para">
   <code class="literal">/path/to/mysql_config</code>代表了要用来编译mysql客户端/连接mysql服务端的<code class="literal">mysql_config</code>程序位置。
   </p>
  
  <table class="doctable table">
   <caption><strong>mysqli 编译时支持表</strong></caption>
   
    <thead>
     <tr>
      <th>PHP 版本</th>
      <th>默认</th>
      <th>配置选项: <a href="mysqlnd.overview.html" class="link">mysqlnd</a></th>
      <th>配置选项: <code class="literal">libmysql</code></th>
      <th>更新日志</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>5.0.x, 5.1.x, 5.2.x</td>
      <td>libmysql</td>
      <td>不适用</td>
      <td><strong class="option configure">--with-mysqli=/path/to/mysql_config</strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td>5.3.x</td>
      <td>libmysql</td>
      <td><strong class="option configure">--with-mysqli=mysqlnd</strong></td>
      <td><strong class="option configure">--with-mysqli=/path/to/mysql_config</strong></td>
      <td>mysqlnd is now supported</td>
     </tr>

     <tr>
      <td>5.4.x</td>
      <td>mysqlnd</td>
      <td><strong class="option configure">--with-mysqli</strong></td>
      <td><strong class="option configure">--with-mysqli=/path/to/mysql_config</strong></td>
      <td>mysqlnd is now the default</td>
     </tr>

    </tbody>
   
  </table>


    <p class="para">
    请注意Mysql扩展和客户端库是可以自由混合的。比如，可以使用libmysql这个mysql客户端库来启用Mysql扩展，使用
    Mysql Native Driver来配置<code class="literal">mysqli</code>扩展。所有的扩展和客户端库的顺序都是可能的。
    </p>

    <p class="para">
    下面的示例使用Mysql Client Library（libmysql）构建了mysql扩展，并且<code class="literal">mysqli</code>和
    PDO Mysql扩展使用Mysql Native Dirver（作为客户端库）：
    </p>

<div class="example-contents">
<div class="shellcode"><pre class="shellcode">./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
[other options]</pre>
</div>
</div>

 </div>

 <div class="section" id="mysqli.installation.windows">

  <h2 class="title">在windows系统安装</h2>

  <p class="para">
  在windows上，PHP通常使用二进制安装包进行安装。
  </p>

  <div class="section">

   <h2 class="title">PHP 5.0, 5.1, 5.2</h2>

   <p class="para">
   当PHP安装后，如果期望使用则可以通过一些配置来开启<code class="literal">mysqli</code>并指定客户端库。
   </p>

   <p class="para">
   <code class="literal">mysqli</code>扩展默认并不会开启，因此<var class="filename">php.ini</var>中<var class="filename">php_mysqli.dll</var>这个DLL
   必须开启。为此你需要找到<var class="filename">php.ini</var>文件（通常在<var class="filename">c:\php</var>），并且你需要确认删除了
   <code class="literal">[PHP_MYSQLI]</code>部分中的<code class="literal">extension=php_mysqli.dll</code>一行行首的注释符号（分号）。
   </p>

   <p class="para">
   另外，如果你希望使用Mysql client library（libmysql）作为<code class="literal">mysqli</code>的驱动器，你需要确保PHP可以访问
   客户端库的文件。Mysql Client Library作为文件<var class="filename">libmysql.dll</var>包含在windows的PHP分发包中。
   这个文件需要在windows系统的<var class="envar">PATH</var>环境变量中才可以被成功加载。查看FAQ文档
   <a href="faq.installation.html#faq.installation.addtopath" class="link">怎样增加我的PHP目录到Windows的PATH中</a>了解怎样配置环境变量PATH。
   把<var class="filename">libmysql.dll</var>拷贝到Windows的系统目录（通常是<var class="filename">c:\Windows\system</var>）也是适用的，
   通常系统目录默认就在系统的<var class="envar">PATH</var>环境变量下。然而，我们强烈反对这种做法。
   </p>

   <p class="para">
   就像开启任何PHP扩展（比如<var class="filename">php_mysqli.dll</var>），PHP指令
   <a href="ini.core.html#ini.extension-dir" class="link">extension_dir</a>可以被设置为PHP扩展位置的目录路径。
   查看<a href="install.windows.manual.html" class="link">windows安装介绍手册</a>。关于此的一个例子是PHP 5中
   <code class="literal">extension_dir</code>指令的值是<var class="filename">c:\php\ext</var>。
   </p>

   <blockquote class="note"><p><strong class="note">注意</strong>: 
    <p class="para">
    如果启动web服务器的时候发生了类似下面这样的错误<code class="literal">&quot;Unable to load dynamic library &#039;./php_mysqli.dll&#039;&quot;</code>，
    这就是因为在系统中无法找到<var class="filename">php_mysqli.dll</var>或者<var class="filename">libmysql.dll</var>。
    </p>
   </p></blockquote>
  </div>

  <div class="section">

    <h2 class="title">PHP 5.3.0+</h2>

   <p class="para">
   在windows上，对于PHP 5.3或更新版本，<code class="literal">mysqli</code>扩展默认开启并使用Mysql Native Driver。
   这就是说你不需要担心关于访问<var class="filename">libmysql.dll</var>的配置。
   </p>

  </div>

 </div>

</div></div></div></body></html>